package cn.bugstack.trigger.api;

import cn.bugstack.trigger.api.dto.*;
import cn.bugstack.types.model.Response;

import java.util.List;

/**
 * @Author: Zchy
 * @Description: 对外提供服务的api接口
 * @DateTime: 11/23/2024 4:53 PM
 **/
public interface IRaffleStrategyService {
    /*
     * 抽奖策略装配接口
     *
     * @author: Zchy
     * @date: 11/23/2024 4:55 PM
     * @param: strategyId
     * @return: cn.bugstack.trigger.api.response.Response<java.lang.Boolean>
    **/
    Response<Boolean> strategyArmory(Long strategyId);

    /*
     * 查询抽奖奖品列表
     *
     * @author: Zchy
     * @date: 11/23/2024 4:57 PM
     * @param: requestDTO
     * @return: cn.bugstack.trigger.api.response.Response<List<RaffleAwardListResponseDTO>>
    **/
    Response<List<RaffleAwardListResponseDTO>> queryRaffleAwardList(RaffleAwardListRequestDTO requestDTO);

    /*
     * 随机抽奖接口
     *
     * @author: Zchy
     * @date: 11/23/2024 4:58 PM
     * @param: requestDTO
     * @return: cn.bugstack.trigger.api.response.Response<RaffleResponseDTO>
    **/
    Response<RaffleResponseDTO> randomRaffle(RaffleRequestDTO requestDTO);

    /*
     * 查询抽奖策略权重
     *
     * @author: Zchy
     * @date: 2025/1/15 14:19
     * @param: request
     * @return: cn.bugstack.types.model.Response<java.util.List<cn.bugstack.trigger.api.dto.RaffleStrategyRuleWeightResponseDTO>>
    **/
    Response<List<RaffleStrategyRuleWeightResponseDTO>> queryRaffleStrategyRuleWeight(RaffleStrategyRuleWeightRequestDTO request);
}
